#ifndef DISK_H
#define DISK_H

#include <QString>
#include <QMultiMap>
#include <QPair>

#include "measure.h"

class Disk : Measure
{
public:
    Disk();
    ~Disk(){}

    struct DiskItem{
//        QString device;// 设备名称
        QString rrqmps;  //每秒进行 merge 的读操作数目
        QString wrqmps;  //每秒进行 merge 的写操作数目
        QString rps;     //每秒完成的读 I/O 设备次数
        QString wps;     //每秒完成的写 I/O 设备次数
        QString rKBps;   //每秒读K字节数
        QString wKBps;   //每秒写K字节数
        QString avgrq_sz;//平均每次设备I/O操作的数据大小
        QString avgqu_sz;//平均I/O队列长度
        QString await;    //平均每次设备I/O操作的等待时间 (毫秒)
        QString svctm;    // 平均每次设备IO操作的服务时间（毫秒）
        QString percUtil; //一秒中有百分之多少的时间用于 I/O 操作
    }sDiskItem;

    void GetDiskInfo(Disk *pDisk, QMultiMap<QString, QPair<QString,QString> > *pmultiMap);
private:
    char *diskCommand;
    void SeperateString(char *result, struct DiskItem *pDisk);
};

#endif // DISK_H
